Eli Zaretskii [Fri, 26 May 2023 11:03:56 +0000 (07:03 -0400)]
; Merge from origin/emacs-29
The following commit was skipped:
0abb79ca09a Avoid duplicates when adding package dirs to load-path
Eli Zaretskii [Fri, 26 May 2023 11:03:07 +0000 (07:03 -0400)]
Merge from origin/emacs-29
6f6071c5261 Avoid duplicate load-path entry when generating package a...
117b29c6f66 ; Improve documentation of Isearch command properties
a347b26cba2 Disable loading SQLite3 extensions when SQLite3 version i...
fe22bf503fb ; * lisp/progmodes/project.el (project-switch-use-entire-...
64dbbde3b77 Fix visiting HTML files encoded in iso-2022 variants
5c95239aca2 ; Fix markup of some treesit vars in Elisp manual.
6ad041939be Support 'isearch-allow-scroll' in 'pixel-scroll-precision...
ecccdc07a09 shr: allow moving between adjacent anchors
504ef25ef36 ; * etc/NEWS: Fix typos.
d6fb868cdd3 Fix multihop file name expansion in Tramp
dd3e4e14fdc Remove obsolete information from Gnus manual
2a5c946f879 Preserve mark in comint-history-isearch
6b60c8142ea Fix systemd unit completion for old versions of systemd
8c56557cd9d Fix Skeletons menu-bar menu in Python modes
58eb38cfb47 ; * etc/NEWS: missing definite article
cf403628692 ; * etc/NEWS: PGTK cannot switch to -new automatically (b...
ead3a2abbfc Fix loading SQLite extensions
a6bddd17658 ; * etc/NEWS: Fix typos.
f49fe936abd * etc/NEWS: Note dotimes loop variable scoping change (bu...
cec9333dc52 Fix c-ts-mode--top-level-declarator
f571e8f1bb6 Improve c-ts-mode font-lock for function names (bug#63390)
42a28ffdc27 * lisp/tab-bar.el: Don't use 'minibuffer-selected-window'...
8e61d23f71e Split windows horizontally in places that use split to cr...
459d08c7fe7 Fix tree-sitter test (bug#63481)
3bc5efb87e5 ; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix d...
# Conflicts:
# etc/NEWS
Eli Zaretskii [Fri, 26 May 2023 10:20:56 +0000 (13:20 +0300)]
Fix emacsclient when there are irrecoverable file-visiting errors
* lisp/server.el (server-process-filter, server-return-error):
Display the error message to be sent to the client as a regular
message, to give the user the opportunity to see it. Delete the
terminal immediately after sending the error message to the
client, to make sure the terminal's modes are restored.
(Bug#63629)
Eshel Yaron [Mon, 15 May 2023 18:04:21 +0000 (21:04 +0300)]
Add customization options for dictionary-search
Allow users to customize 'dictionary-search' via several new
customization options.
* lisp/net/dictionary.el (dictionary-define-word)
(dictionary-match-word, dictionary-completing-read-word)
(dictionary-dictionaries, dictionary-completing-read-dictionary)
(dictionary-display-definition-in-help-buffer): New functions.
(dictionary-read-word-prompt)
(dictionary-display-definition-function)
(dictionary-read-word-function)
(dictionary-read-dictionary-function)
(dictionary-search-interface): New user options.
(dictionary-search): Use them.
(dictionary-read-dictionary-default)
(dictionary-read-word-default): New functions, extracted from
'dictionary-search'.
* etc/NEWS: Announce.
Mattias Engdegård [Thu, 25 May 2023 08:22:54 +0000 (10:22 +0200)]
; eieio-test-persist.el: namespace hygiene
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
(hash-equal): Rename to `eieio-test--hash-equal`.
João Távora [Thu, 25 May 2023 13:29:45 +0000 (14:29 +0100)]
Eglot: fix execution of CodeAction commands
Reported in
https://github.com/joaotavora/eglot/discussions/1225.
* lisp/progmodes/eglot.el (eglot-execute): Fix typo.
Brian Leung [Sat, 20 May 2023 08:43:52 +0000 (01:43 -0700)]
Eglot: Add nickel-mode configuration
* lisp/progmodes/eglot.el (eglot-server-programs): Add nls for nickel-mode.
Mattias Engdegård [Wed, 24 May 2023 20:36:19 +0000 (22:36 +0200)]
Fix apparently wrong `delete` and `delq` value discards (bug#61730)
* lisp/startup.el (normal-top-level):
Update process-environment in case the DISPLAY variable comes first.
Also stop iterating over initial-environment once the first DISPLAY
is found.
* lisp/allout.el (allout-get-configvar-values):
* lisp/org/org.el (org-display-inline-remove-overlay):
* lisp/progmodes/gdb-mi.el (gdb-get-location):
* lisp/progmodes/idlwave.el
(idlwave-convert-xml-clean-routine-aliases)
(idlwave-convert-xml-clean-sysvar-aliases):
* lisp/textmodes/reftex.el (reftex-ref-style-toggle):
Update the base variable after performing a destructive deletion,
where it was obvious that this was intended.
Michael Albinus [Wed, 24 May 2023 18:52:25 +0000 (20:52 +0200)]
Use `small-temporary-file-directory' in Tramp
* lisp/net/tramp-fuse.el (tramp-fuse-mount-point):
* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
Use `small-temporary-file-directory'.
Andrea Corallo [Wed, 24 May 2023 15:05:26 +0000 (17:05 +0200)]
Fix nativecomp ICE compiling structure related code (bug#63674)
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Define the predicate to
be effective at compile time as native comp relies on `cl-typep' that
relies o predicates to work.
* test/src/comp-resources/comp-test-funcs.el (cl-lib): Require.
(comp-test-struct): Define struct.
(comp-test-63674-1-f): Add new test.
Stefan Monnier [Wed, 24 May 2023 13:47:27 +0000 (09:47 -0400)]
* lisp/loadup.el: Don't accidentally reduce `max-lisp-eval-depth`
Mattias Engdegård [Wed, 24 May 2023 09:30:53 +0000 (11:30 +0200)]
Use return values of assq-delete-all and assoc-delete-all
* lisp/allout-widgets.el (allout-widgets-mode):
* lisp/progmodes/eglot.el (eglot-handle-notification):
Update variables with the new value, which was probably the intention
here.
Andrea Corallo [Tue, 23 May 2023 13:13:08 +0000 (15:13 +0200)]
* test/src/comp-tests.el: Add some ret type tests for non builtin types
Andrea Corallo [Wed, 17 May 2023 16:00:24 +0000 (18:00 +0200)]
comp: Propagate pre slot access type check
* lisp/loadup.el (max-lisp-eval-depth): Increase
`max-lisp-eval-depth' to 3400.
* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Pattern match pre
slot access type check and add constraint.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-cl-tag-p)
(comp-cstr-cl-tag): New functions.
* lisp/emacs-lisp/comp.el (make-comp-mvar): Add neg parameter.
Andrea Corallo [Wed, 24 Aug 2022 21:31:28 +0000 (23:31 +0200)]
comp: Make use of predicates in propagation for non builtin types
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add `pred-type-h'
slot.
* lisp/emacs-lisp/comp.el (comp-known-predicate-p)
(comp-pred-to-cstr): Update.
Andrea Corallo [Wed, 24 Aug 2022 16:41:19 +0000 (18:41 +0200)]
* lisp/emacs-lisp/comp.el (comp-fwprop-call): Extend to understand `record'
Andrea Corallo [Wed, 24 Aug 2022 16:08:37 +0000 (18:08 +0200)]
comp: Account non builtin types in type hierarchy
* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents): Add comment.
* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class): Likewise.
* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy)
(comp--all-classes): New functions.
(comp-cstr-ctxt): Add `typeof-types' field.
* lisp/emacs-lisp/comp-cstr.el (comp-supertypes)
(comp-union-typesets): Update to use non builtin types.
Michael Albinus [Tue, 23 May 2023 13:32:20 +0000 (15:32 +0200)]
Improve check for ANSI control escape sequences in Tramp
* lisp/net/tramp-sh.el (tramp-barf-if-no-shell-prompt):
Remove `ansi-color-control-seq-regexp'.
* lisp/net/tramp.el (tramp-terminal-type): Fix docstring.
(tramp-process-one-action): Delete ANSI control escape sequences
in buffer. (Bug#63539)
Robert Pluim [Tue, 23 May 2023 13:01:11 +0000 (15:01 +0200)]
Stop adding the package directory to the load path
The generated autoloads files for packages have been updating the
load-path for the last decade.
* lisp/emacs-lisp/package.el (package-activate-1): Don't update
load-path with package directory.
Stefan Monnier [Mon, 22 May 2023 16:49:26 +0000 (18:49 +0200)]
Avoid duplicates when adding package dirs to load-path
Do not merge to master, we're going to delete this code there.
* lisp/emacs-lisp/package.el (package-activate-1): Check if the path
we're about to add is already in 'load-path', since package autoload
files have been updating 'load-path' for a decade.
Robert Pluim [Mon, 22 May 2023 13:44:21 +0000 (15:44 +0200)]
Avoid duplicate load-path entry when generating package autoloads
'file-name-directory' produces a path ending in '/', so that needs to be
run through 'directory-file-name' to avoid duplicate entries in
'load-path'. (Bug#63625)
* lisp/emacs-lisp/package.el (package-generate-autoloads): Call
'directory-file-name' on the directory of 'load-file-name'.
Eli Zaretskii [Tue, 23 May 2023 11:58:39 +0000 (14:58 +0300)]
; Improve documentation of Isearch command properties
* doc/emacs/display.texi (Scrolling):
* doc/emacs/search.texi (Not Exiting Isearch): Improve
documentation and indexing of 'scroll-command', 'isearch-scroll',
and 'isearch-move' properties.
Eli Zaretskii [Tue, 23 May 2023 11:30:31 +0000 (14:30 +0300)]
Disable loading SQLite3 extensions when SQLite3 version is too old
* src/sqlite.c (HAVE_LOAD_EXTENSION): Define to 1 only if
enabling/disabling extension loading is supported as well.
(load_dll_functions, Fsqlite_load_extension): Condition on
HAVE_LOAD_EXTENSION, not on HAVE_SQLITE3_LOAD_EXTENSION.
(Bug#63653)
Spencer Baugh [Fri, 12 May 2023 19:28:06 +0000 (15:28 -0400)]
Use faster option for running vc-hg status (Bug#63470)
In modern Mercurial, removing the "re:" "-I" "." options provides a
10x-20x speedup because it allows the Rust implementation of "hg
status" to be used.
* lisp/vc/vc-hg.el (vc-hg--program-version): Add.
(vc-hg-dir-status-files): Use --config commands.status.relative=1 to
make paths relative when available.
Eli Zaretskii [Mon, 22 May 2023 18:31:56 +0000 (21:31 +0300)]
; * lisp/progmodes/project.el (project-switch-use-entire-map): Doc fix.
Eli Zaretskii [Mon, 22 May 2023 18:23:58 +0000 (21:23 +0300)]
Fix visiting HTML files encoded in iso-2022 variants
* lisp/international/mule.el (sgml-xml-auto-coding-function)
(sgml-html-meta-auto-coding-function): Handle coding-systems whose
coding-system-type is iso-2022. (Bug#63644)
Alan Mackenzie [Mon, 22 May 2023 16:09:07 +0000 (16:09 +0000)]
Fix syntax bugs involving escaped newlines in comments
This fixes bug#63535
* src/syntax.c (forw_comment): take the initial syntax from the
argument PREV_SYNTAX rather than checking the buffer position
for a backslash. Update the state at each character scanned.
(scan_sexps_forward): When the end position is escaped after a
call to forw_comment, return this status to the caller.
Mattias Engdegård [Mon, 22 May 2023 14:27:00 +0000 (16:27 +0200)]
Attempt to speed up filenotify-tests
* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
Run with a lower `auto-revert-interval` (1 s) and adjust the
a timeout value. This should lower the time for this particular
test from 25 to below 10 s.
Basil L. Contovounesios [Mon, 22 May 2023 14:23:39 +0000 (15:23 +0100)]
; Fix markup of some treesit vars in Elisp manual.
* doc/lispref/modes.texi (Parser-based Font Lock):
(Parser-based Indentation):
* doc/lispref/parsing.texi (Multiple Languages): Use @code in place
of @var when the argument is not a metavariable.
Michael Albinus [Mon, 22 May 2023 14:08:23 +0000 (16:08 +0200)]
Support existing sshfs and rclone mount points in Tramp
* lisp/net/tramp-fuse.el (tramp-fuse-mount-point, tramp-fuse-mounted-p):
Support existing mount points.
Eli Zaretskii [Mon, 22 May 2023 11:20:38 +0000 (14:20 +0300)]
Support 'isearch-allow-scroll' in 'pixel-scroll-precision-mode'
* lisp/pixel-scroll.el (pixel-scroll-precision)
(pixel-scroll-down, pixel-scroll-up): Put the 'scroll-command'
property on these commands. (Bug#63640)
Andreas Schwab [Mon, 22 May 2023 11:08:33 +0000 (13:08 +0200)]
shr: allow moving between adjacent anchors
* lisp/net/shr.el (shr-urlify): Put shr-tab-stop only over first
position.
Michael Albinus [Mon, 22 May 2023 10:56:45 +0000 (12:56 +0200)]
Mark failing filenotify test as :unstable
* test/lisp/filenotify-tests.el (file-notify-test04-autorevert-remote):
Tag as :unstable.
Michael Albinus [Mon, 22 May 2023 10:20:44 +0000 (12:20 +0200)]
; * etc/NEWS: Fix typos.
Michael Albinus [Mon, 22 May 2023 10:20:27 +0000 (12:20 +0200)]
Fix multihop file name expansion in Tramp
* lisp/net/tramp.el (tramp-dissect-file-name): Set hop to nil if
NODEFAULT. (Bug#63578)
Po Lu [Mon, 22 May 2023 03:52:33 +0000 (11:52 +0800)]
Plug various leaks and fix input method initialization
* src/image.c (free_bitmap_record): Free bm->name correctly even
if the display connection has been closed.
* src/xfns.c (x_window): Use dpyinfo-specific `use_xim' flag.
* src/xterm.c (use_xim): Remove global variable.
(xim_destroy_callback): Free `xim_styles' if present, and set it
to NULL to be on the safe side.
(xim_open_dpy): Consult dpyinfo->use_xim instead. Don't leak
`xim_styles' if an IM was previously opened.
(xim_initialize): Use dpyinfo-specific `use_xim' flag.
(xim_close_dpy): Check if `dpyinfo->xim_callback_data' is set
before unregistering the instantiation callback.
(x_term_init): Determine whether or not to use XIM for each
display opened, instead of using the resources of the last
display opened to toggle a global flag.
(x_delete_terminal): Always call `image_destroy_all_bitmaps' and
`xim_close_dpy'. Free storage used to hold bitmap records.
* src/xterm.h (struct x_display_info): New field `use_xim'.
F. Jason Park [Fri, 19 May 2023 06:47:27 +0000 (23:47 -0700)]
Fix custom type of erc-autojoin-channels-alist
* lisp/erc/erc-join.el (erc-autojoin-channels-alist): In ERC 5.4, the
type of this option changed to accept symbols signifying IRC network
names. However, the option's definition was not updated to reflect
that. See commit
9bb8d90cddf "Allow irc network symbols in
erc-autojoin-channels-alist".
F. Jason Park [Fri, 19 May 2023 06:47:27 +0000 (23:47 -0700)]
; Silence byte compiler in erc-netsplit-JOIN
* etc/ERC-NEWS: Partially revert edit from
c9f1ad2a870 "Revive option
erc-query-on-unjoined-chan-privmsg".
* lisp/erc/erc-netsplit.el (erc-netsplit-JOIN): Silence byte compiler
warning re ignored return value from `delete' when removing nicks.
Could probably suppress rather than reconstitute since the CAR of an
`erc-netsplit-list' entry originates from the trailing "reason" param
of the instigating "QUIT" command and should look something like
"irc.example.org chat.example.org", which cannot be confused for a
nickname.
* test/lisp/erc/resources/erc-scenarios-common.el: Fix wording in
Commentary.
Eli Zaretskii [Sun, 21 May 2023 10:57:14 +0000 (13:57 +0300)]
New Rmail commands for reading mailing-lists
* lisp/mail/rmail.el (rmail--mailing-list-message): New internal
function.
(rmail-mailing-list-help, rmail-mailing-list-post)
(rmail-mailing-list-unsubscribe, rmail-mailing-list-archive): New
commands.
(rmail-mode-map): Add menu items for the new commands.
* etc/NEWS: Announce the new Rmail commands.
Jens Schmidt [Sat, 20 May 2023 21:46:42 +0000 (23:46 +0200)]
Remove obsolete information from Gnus manual
The Gnus manual was still referencing long-removed external
marks in section "Archiving Mails". Without external marks,
that section is almost pointless, so remove it completely.
* doc/misc/gnus.texi (Archiving Mail): Remove section.
(Top, Browsing the Web): Remove references to "Archiving
Mail". (Bug#63497)
Jens Schmidt [Sat, 20 May 2023 21:03:29 +0000 (23:03 +0200)]
Preserve mark in comint-history-isearch
This preserves mark in `comint-history-isearch-backward' and
friends, which tend to set the mark on completion of the isearch
to unexpected positions.
* lisp/comint.el (comint-history-isearch-end): Set `isearch-opoint'
to point. (Bug#63616)
Mattias Engdegård [Sat, 20 May 2023 18:34:55 +0000 (20:34 +0200)]
Declare more mutating functions
* lisp/emacs-lisp/bytecomp.el (mutating-fns):
Add assoc-delete-all, assq-delete-all and rassq-delete-all.
* lisp/emacs-lisp/shortdoc.el (alist, list):
Don't mutate constants in examples illustrating use of
assoc-delete-all, assq-delete-all and rassq-delete-all.
Mattias Engdegård [Sat, 20 May 2023 16:24:53 +0000 (18:24 +0200)]
Declare more functions as having important-return-value
* lisp/subr.el (assoc-delete-all, assq-delete-all, rassq-delete-all)
(alist-get): Declare as important-return-value.
* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
Add `assoc-string`.
Mattias Engdegård [Sat, 20 May 2023 10:06:46 +0000 (12:06 +0200)]
Minor optimisation of string-trim-left and string-trim-right
* lisp/subr.el (string-trim-left, string-trim-right):
Use a constant string when no REGEXP argument is given.
Liu Hui [Wed, 17 May 2023 08:39:18 +0000 (16:39 +0800)]
Fix systemd unit completion for old versions of systemd
* lisp/pcmpl-linux.el (pcmpl-linux--systemd-units): Use '--no-legend'
for compatibility with older versions of systemctl. (Bug#63411)
Eli Zaretskii [Sat, 20 May 2023 14:56:40 +0000 (17:56 +0300)]
Fix Skeletons menu-bar menu in Python modes
* lisp/progmodes/python.el (python-mode, python-ts-mode): Call
'python-skeleton-add-menu-items' here, not in 'python-base-mode',
since the "Python" menu is not yet set up in the latter.
(Bug#63598)
Eli Zaretskii [Sat, 20 May 2023 14:26:52 +0000 (17:26 +0300)]
Fix async invocations in Dired with 'fish' shell
* lisp/dired-aux.el (dired-shell-stuff-it): Separate '&' and ';'
by blanks, for the sake of shells such as 'fish'. Suggested by
Lycomedes 1814 <lycomedes1814@yandex.com>.
Mattias Engdegård [Sat, 20 May 2023 13:04:06 +0000 (15:04 +0200)]
; * etc/NEWS: missing definite article
Eli Zaretskii [Sat, 20 May 2023 12:53:21 +0000 (15:53 +0300)]
; * etc/NEWS: PGTK cannot switch to -new automatically (bug#6355).
Eli Zaretskii [Sat, 20 May 2023 12:43:44 +0000 (15:43 +0300)]
Fix loading SQLite extensions
* src/sqlite.c (sqlite3_db_config) [WINDOWSNT]: Load from the DLL.
(Fsqlite_load_extension): Use 'sqlite3_db_config' to enable and
disable loading of extensions. Add a few free extensions to the
allow-list. Fix testing for the ".dll" extension. (Bug#63590)
* test/src/sqlite-tests.el (sqlite-load-extension): Fix the test
to require successful load if the extension does exist.
Michael Albinus [Sat, 20 May 2023 12:00:56 +0000 (14:00 +0200)]
; * etc/NEWS: Fix typos.
Michael Albinus [Sat, 20 May 2023 10:13:09 +0000 (12:13 +0200)]
Improve handling of ANSI control sequences in Tramp
* lisp/net/tramp-compat.el (ansi-color): Require.
* lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp)
(tramp-device-escape-sequence-regexp): Delete.
(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.
* lisp/net/tramp.el (tramp-shell-prompt-pattern): Remove escape
characters.
(tramp-process-one-action, tramp-convert-file-attributes):
Use `ansi-color-control-seq-regexp'. (Bug#63539)
* test/lisp/net/tramp-tests.el (tramp-display-escape-sequence-regexp):
Dont't declare.
(tramp-test28-process-file, tramp-test32-shell-command):
Use `ansi-color-control-seq-regexp'.
(tramp-test45-asynchronous-requests): Adapt test.
Mattias Engdegård [Thu, 18 May 2023 15:33:15 +0000 (17:33 +0200)]
Use `delq` return value (bug#61730)
* lisp/calc/calc-graph.el (calc-graph-compute-2d):
* lisp/calendar/appt.el (appt-activate):
* lisp/progmodes/cc-styles.el (c-make-styles-buffer-local):
Make use of what `delq` returns, to stave off possible mistakes or at
least make clear that there isn't any.
Mattias Engdegård [Sat, 20 May 2023 08:50:25 +0000 (10:50 +0200)]
* etc/NEWS: Note dotimes loop variable scoping change (bug#63586)
Yuan Fu [Sat, 20 May 2023 07:45:39 +0000 (00:45 -0700)]
Fix c-ts-mode--top-level-declarator
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--top-level-declarator): Don't use treesit-node-match-p.
Yuan Fu [Fri, 19 May 2023 23:09:17 +0000 (16:09 -0700)]
Improve c-ts-mode font-lock for function names (bug#63390)
When a function definition has preproc directives in its body, it
can't correctly parse into a function_definition. This fix tries to
recognize this case and highlight the function_declarator correctly.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--font-lock-settings): New rule.
(c-ts-mode--top-level-declarator): New function.
Juri Linkov [Fri, 19 May 2023 18:14:16 +0000 (21:14 +0300)]
* lisp/tab-bar.el: Don't use 'minibuffer-selected-window' (bug#62427).
(tab-bar-select-tab, tab-bar-new-tab-to):
Use 'window-minibuffer-p' instead of 'minibuffer-selected-window'.
And switch to 'get-mru-window' instead of 'minibuffer-selected-window'.
Juri Linkov [Fri, 19 May 2023 18:04:50 +0000 (21:04 +0300)]
Split windows horizontally in places that use split to create a new window.
* lisp/tab-bar.el (tab-bar-new-tab-to):
* lisp/window.el (window-state-put):
To create a new window, split horizontally instead of vertically.
Use 'window-safe-min-width' for the SIZE arg of 'split-window'.
(bug#62592)
Mattias Engdegård [Fri, 19 May 2023 10:32:28 +0000 (12:32 +0200)]
Improved copy-tree documentation and test (bug#63509)
* etc/NEWS: Move entry since it's an incompatible change.
* lisp/emacs-lisp/shortdoc.el (vector): Make the example relevant.
* lisp/subr.el (copy-tree): Rename second argument,
since 'vector-like' is a term with a specific meaning in Emacs
but not the one intended here.
* doc/lispref/lists.texi (Building Lists): Rename second argument,
and make it clear that the input must be acyclic.
* doc/lispref/records.texi (Record Functions):
Be more precise: `copy-sequence` is used to copy records,
`copy-tree` copies trees made of records etc.
* test/lisp/subr-tests.el (subr--copy-tree): Extend and strengthen the
test considerably, using the print-circle trick to detect structure
sharing precisely.
Yuan Fu [Fri, 19 May 2023 07:15:21 +0000 (00:15 -0700)]
Implement treesit-forward-sexp correctly (bug#63487)
* lisp/treesit.el (treesit-forward-sexp): Signal scan-error when we
can't move across sexps further.
Eli Zaretskii [Fri, 19 May 2023 06:05:45 +0000 (09:05 +0300)]
Minor fixes of last change
* etc/NEWS:
* doc/lispref/records.texi (Record Functions): Improve wording.
(Bug#63509)
Joseph Turner [Mon, 15 May 2023 04:02:15 +0000 (21:02 -0700)]
Make 'copy-tree' work with records
* doc/lispref/lists.texi (Building Cons Cells and Lists): Document
new behavior of 'copy-tree'.
* doc/lispref/records.texi (Record Functions): Cross-reference to
lists.texi.
* etc/NEWS: Mention change. (Bug#63509)
* lisp/emacs-lisp/shortdoc.el: Add 'copy-tree' example to vector
group.
* lisp/subr.el (copy-tree): Recurse into records as well as
vectors when optional second argument is non-nil. Rename second
argument from VECP to VECTOR-LIKE-P.
* test/lisp/subr-tests.el: Test new behavior.
Yuan Fu [Thu, 18 May 2023 21:44:26 +0000 (14:44 -0700)]
Fix tree-sitter test (bug#63481)
* test/src/treesit-tests.el (treesit-basic-parsing): Latest json
parser doesn't return an error on empty buffer or multiple objects
anymore [1].
https://github.com/tree-sitter/tree-sitter-json/commit/
40a81c01a40ac48744e0c8ccabbaba1920441199
Mattias Engdegård [Thu, 18 May 2023 15:22:41 +0000 (17:22 +0200)]
Try declaring `delq` and `delete` important-return-value (bug#61730)
* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
Add (uncomment) `delq` and `delete`.
Eli Zaretskii [Thu, 18 May 2023 14:20:36 +0000 (17:20 +0300)]
; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix declare form.
Basil L. Contovounesios [Wed, 17 May 2023 12:53:09 +0000 (13:53 +0100)]
Simplify python.el completion-predicate
* lisp/progmodes/python.el:
(python-skeleton-define): Use command-modes as a shorthand for
completion-predicate (bug#63552).
(python--completion-predicate, python-shell--completion-predicate):
Remove accordingly; no longer used.
(python-define-auxiliary-skeleton): Prefer function-put over put.
Eli Zaretskii [Thu, 18 May 2023 11:49:49 +0000 (07:49 -0400)]
Merge from origin/emacs-29
f8d9e40d2c1 Attempt to fix redisplay problems on macOS
4daa6f70497 ; * lisp/simple.el (async-shell-command): Add commentary ...
dc1a437d460 Clarify misleading comment in isearch.el
af3b0dc53ff Improve documentation of package-menu commands
d879847cd4d Fix M-x completion-predicate under python-ts-mode
1e57b2b4c79 * Account for `byte-compile-warnings' during native compi...
b5bfd808c6b Avoid duplicate VC packages in 'package-selected-packages'
c18f9f155f6 * lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side'...
33485fe8f74 ; Better warning message when loading tree-sitter fails
95a724abaac Update to Org 9.6.6
c665ca79ff4 ; * admin/make-tarball.txt: Minor copyedits.
3aef46e466f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
229af8e4b31 ; * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-...
Eli Zaretskii [Thu, 18 May 2023 11:49:49 +0000 (07:49 -0400)]
; Merge from origin/emacs-29
The following commits were skipped:
88ca37b8589 ; Regenerate files for emacs-29.0.91
4627ede36b1 ; * lisp/ldefs-boot.el: Regenerate for emacs-29.0.91.
c90d47619e6 Bump Emacs version for next pretest
Eli Zaretskii [Thu, 18 May 2023 11:49:49 +0000 (07:49 -0400)]
Merge from origin/emacs-29
229af8e4b31 ; * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-...
ce7d18cbc07 ; Minor fixes in ELisp manual
5c8864fab4f ; * lisp/simple.el (async-shell-command): Doc fix. (Bug#...
b96dc472bcb Ignore current-prefix-arg in async-shell-command
1e6a7594361 Fix building of VC package manuals with relative includes
61659f36c88 Another fix for VHDL mode highlighting
Aaron Jensen [Thu, 18 May 2023 11:20:18 +0000 (14:20 +0300)]
Attempt to fix redisplay problems on macOS
* src/nsterm.m (ns_scroll_run): Attempt to fix redisplay
artifacts. (Bug#63187)
Eli Zaretskii [Thu, 18 May 2023 11:03:10 +0000 (14:03 +0300)]
; * lisp/simple.el (async-shell-command): Add commentary about 3rd arg.
Jens Schmidt [Tue, 16 May 2023 21:31:19 +0000 (23:31 +0200)]
Clarify misleading comment in isearch.el
Clarify a misleading comment in isearch.el as to whether frame events
should exit an isearch or not (Bug#62032, Bug#41338 for background
information).
* lisp/isearch.el (isearch-mode-map): Replace the misleading comment.
(Bug#62032)
Copyright-paperwork-exempt: yes
Mattias Engdegård [Thu, 18 May 2023 07:49:53 +0000 (09:49 +0200)]
* lisp/erc/erc-fill.el (erc-fill-spaced-commands): Fix typing errors
The type (set integer symbol) matches a list of at most one integer
and one symbol, not multiple distinct symbols.
Eli Zaretskii [Thu, 18 May 2023 06:41:59 +0000 (09:41 +0300)]
Improve documentation of package-menu commands
* doc/emacs/package.texi (Package Menu): Document that some
package-menu filters accept lists of values interactively.
* lisp/emacs-lisp/package.el (package-menu-execute)
(package-menu-hide-package, package-menu-describe-package)
(package-menu-mark-delete, package-menu-mark-install)
(package-menu-mark-unmark, package-menu-backup-unmark)
(package-menu-quick-help, package-menu-get-status)
(package-menu--find-upgrades, package-menu-mark-upgrades)
(package-menu-filter-by-archive)
(package-menu-filter-by-description)
(package-menu-filter-by-keyword)
(package-menu-filter-by-name-or-description)
(package-menu-filter-by-name, package-menu-filter-by-status)
(package-menu-filter-by-version, package-menu-filter-marked)
(package-menu-describe-package): Doc fixes.
F. Jason Park [Wed, 17 May 2023 12:27:13 +0000 (05:27 -0700)]
; * lisp/erc/erc.el (erc-accidental-paste-threshold-seconds): Doc fix.
Paul Eggert [Wed, 17 May 2023 22:36:54 +0000 (15:36 -0700)]
Prefer C23 ckd_* to Gnulib *_WRAPV macros
C23 has added ckd_add etc. macros with functionality equivalent to
the older Gnulib INT_ADD_WRAPV macros, so switch to the
more-standard names.
* admin/merge-gnulib (GNULIB_MODULES): Add stdckdint.
This merely makes the dependency explicit, as we were already
using this Gnulib module indirectly.
* lib-src/etags.c, src/lisp.h: Include stdckdint.h.
* lib-src/etags.c (xnmalloc, xnrealloc):
* src/alloc.c (xnmalloc, xnrealloc, xpalloc, Fmake_string)
(mark_memory):
* src/bignum.c (emacs_mpz_pow_ui):
* src/buffer.c (record_overlay_string, overlay_strings):
* src/bytecode.c (exec_byte_code):
* src/casefiddle.c (do_casify_multibyte_string):
* src/ccl.c (ccl_driver, Fccl_execute_on_string):
* src/character.c (char_width, c_string_width)
(lisp_string_width, count_size_as_multibyte)
(string_escape_byte8):
* src/cmds.c (internal_self_insert):
* src/coding.c (coding_alloc_by_realloc, produce_chars):
* src/data.c (arith_driver):
* src/dispnew.c (realloc_glyph_pool, init_display_interactive):
* src/doprnt.c (parse_format_integer):
* src/editfns.c (Freplace_buffer_contents, str2num)
(styled_format):
* src/emacs-module.c (module_global_reference_p)
(module_make_global_ref, module_funcall):
* src/eval.c (max_ensure_room):
* src/fileio.c (blocks_to_bytes):
* src/fns.c (Ffillarray):
* src/font.c (font_intern_prop):
* src/frame.c (check_frame_pixels):
* src/gnutls.c (gnutls_hex_string, gnutls_symmetric_aead):
* src/gtkutil.c (get_utf8_string):
* src/haikuterm.c (haiku_term_init):
* src/image.c (xbm_scan, image_to_emacs_colors)
(image_detect_edges, png_load_body):
* src/keyboard.c (Frecursion_depth):
* src/keymap.c (Flookup_key, Fkey_description):
* src/lisp.h (modiff_incr, SAFE_ALLOCA_LISP_EXTRA):
* src/lread.c (read_bool_vector):
* src/pgtkterm.c (pgtk_term_init):
* src/regex-emacs.c (regex_compile):
* src/term.c (encode_terminal_code):
* src/termcap.c (tputs):
* src/textconv.c (textconv_query):
* src/timefns.c (timespec_ticks, lisp_time_hz_ticks)
(Fdecode_time, check_tm_member):
* src/tparam.c (tparam1):
* src/w32term.c (w32_initialize_display_info):
* src/xdisp.c (fill_column_indicator_column, decode_mode_spec):
* src/xselect.c (selection_data_size, x_property_data_to_lisp):
* src/xsmfns.c (smc_save_yourself_CB):
* src/xterm.c (xm_setup_dnd_targets, x_sync_get_monotonic_time)
(x_sync_current_monotonic_time, x_sync_note_frame_times)
(x_display_set_last_user_time, x_term_init):
Prefer the C23 stdckdint macros to their
Gnulib intprops.h counterparts, since C23 is standard.
Paul Eggert [Wed, 17 May 2023 22:07:38 +0000 (15:07 -0700)]
Update from Gnulib by running admin/merge-gnulib
Paul Eggert [Wed, 17 May 2023 17:53:26 +0000 (10:53 -0700)]
Port modiff changes to GCC 4.8.5
Problem reported by Spencer Baugh.
* src/lisp.h (elogb): Now simply a function on unsigned long long int.
This avoids problems porting to GCC 4.8.5
20150623 (Red Hat 4.8.5-44).
There may be a minor runtime cost on 32-bit platforms but it’s
not worth worrying about.
Basil L. Contovounesios [Wed, 17 May 2023 12:48:09 +0000 (13:48 +0100)]
Fix M-x completion-predicate under python-ts-mode
* lisp/progmodes/python.el (python--completion-predicate)
(python-shell--completion-predicate): Filter M-x completion based on
python-base-mode instead of python-mode. This allows for
python-ts-mode as well (bug#63552).
Andrea Corallo [Wed, 17 May 2023 13:28:46 +0000 (15:28 +0200)]
* Fix missing `comp-files-queue' update (bug#63415).
* lisp/emacs-lisp/comp.el (native--compile-async): Update
`comp-files-queue' for real.
Andrea Corallo [Wed, 10 May 2023 11:50:51 +0000 (13:50 +0200)]
* Account for `byte-compile-warnings' during native compilation (bug#63302).
* lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers):
Forward `byte-compile-warnings' to child processes.
Eli Zaretskii [Wed, 17 May 2023 11:23:53 +0000 (14:23 +0300)]
; * ChangeLog.4: Fix gitmerge snafu.
Thomas Fitzsimmons [Wed, 17 May 2023 10:59:52 +0000 (06:59 -0400)]
EUDC: Fix eudc-ldap-no-wildcard-attributes docstring
* lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): Fix
docstring. (Bug#62721)
Mattias Engdegård [Wed, 17 May 2023 09:31:04 +0000 (11:31 +0200)]
Mark proced-refine-with-update-test :unstable (bug#63550)
* test/lisp/proced-tests.el (proced-refine-with-update-test):
This test seems racy and often fails randomly in parallel
`make check`.
Mattias Engdegård [Wed, 17 May 2023 08:56:44 +0000 (10:56 +0200)]
Eliminate some mutation of program constants
* lisp/foldout.el:
* lisp/gnus/mml2015.el (mml2015-epg-key-image-to-string):
* lisp/international/ja-dic-cnv.el (skkdic-set-postfix)
(skkdic-set-prefix):
* lisp/international/quail.el (quail-insert-kbd-layout):
* lisp/mail/rmail.el (rmail-set-attribute-1):
* lisp/net/tramp.el (tramp-handle-memory-info):
* lisp/org/org-macs.el (org-replace-escapes):
Work on newly created objects, or use non-destructive operations.
Philip Kaludercic [Tue, 16 May 2023 19:28:56 +0000 (21:28 +0200)]
; Add missing markup to new documentation
* doc/emacs/package.texi (Fetching Package Sources): Mark code as
code.
Tony Zorman [Thu, 29 Dec 2022 10:05:04 +0000 (11:05 +0100)]
Add :vc keyword to use-package for VC package support
* lisp/use-package/use-package-core.el (use-package-keywords): Add :vc.
(use-package-handler/:load-path): Insert 'load-path' into 'state'.
(use-package-vc-install): Install the package with package-vc.el.
(use-package-handler/:vc): Handler for the :vc keyword.
(use-package-normalize--vc-arg): Normalization for more complex
arguments to 'use-package-normalize/:vc', in order to make them
compatible with the specification of 'package-vc-selected-packages'.
(use-package-normalize/:vc): Normalizer for the :vc keyword.
(use-package): Document :vc.
* lisp/use-package/use-package-ensure.el (use-package-handler/:ensure):
Do not ensure a package when :vc is used in the declaration.
* test/lisp/use-package/use-package-tests.el (use-package-test/:vc-1):
(use-package-test/:vc-2):
(use-package-test/:vc-3):
(use-package-test/:vc-4):
(use-package-test/:vc-5):
(use-package-test-normalize/:vc):
Add tests for :vc.
* etc/NEWS: Mention change. (Bug#60418)
Joseph Turner [Sat, 13 May 2023 17:05:04 +0000 (10:05 -0700)]
Support side-effects while building VC packages
* doc/emacs/package.texi (Specifying Package Sources): Document new
specification attributes.
* lisp/emacs-lisp/package-vc.el (package-vc-allow-side-effects): Add
new user option.
(package-vc--make): Add handler for processing :make and
:shell-command.
(package-vc--unpack-1): Check 'package-vc-allow-side-effects' and
invoke 'package-vc--make'.
* etc/NEWS: Mention change. (Bug#63336)
Philip Kaludercic [Sun, 14 May 2023 19:22:59 +0000 (21:22 +0200)]
Avoid duplicate VC packages in 'package-selected-packages'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Check if
'package-selected-packages' already contains the package name.
(bug#63338)
João Távora [Tue, 16 May 2023 18:23:33 +0000 (19:23 +0100)]
Eglot: rework eglot-handle-request (bug#62116)
Address comments in the bug tracker regarding widening, and
prematurely reporting success to the server before knowing if the file
can indeed be shown.
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62116#70
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62116#79
* lisp/progmodes/eglot.el (eglot-handle-request): Rework.
Juri Linkov [Tue, 16 May 2023 17:32:34 +0000 (20:32 +0300)]
* lisp/windmove.el (windmove-swap-states-in-direction): Don't swap minibuffer.
Guard against swapping the minibuffer when the minibuffer is in the selected
window (bug#62427). The function was already protected when the minibuffer
is in other-window.
Michael Albinus [Tue, 16 May 2023 15:19:20 +0000 (17:19 +0200)]
Tweak tramp-test45-asynchronous-requests
* test/lisp/net/tramp-tests.el (tramp-use-connection-share): Declare.
(tramp--test-putty-p): New defun.
(tramp-test45-asynchronous-requests): Tweak test.
Paul Eggert [Tue, 16 May 2023 05:09:04 +0000 (22:09 -0700)]
Update from Gnulib by running admin/merge-gnulib
Thomas Fitzsimmons [Mon, 15 May 2023 21:53:45 +0000 (17:53 -0400)]
EUDC: Document disabling default LDAP wildcard expansion
* lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): Cover
`eudc-query-form' and `eudc-expand-inline' behavior in the
customization docstring. (Bug#62721)
Juri Linkov [Mon, 15 May 2023 17:32:04 +0000 (20:32 +0300)]
* lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side' to nil (bug#62427).
This is still needed for the case when tab-bar-new-tab-choice is 'window'.
Eli Zaretskii [Mon, 15 May 2023 15:39:49 +0000 (18:39 +0300)]
; Better warning message when loading tree-sitter fails
* lisp/treesit.el (treesit-ready-p): Improve diagnostics on
MS-Windows when the tree-sitter library cannot be loaded at run
time.
Michael Albinus [Mon, 15 May 2023 14:25:23 +0000 (16:25 +0200)]
Fix some minor Tramp problems
* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-exists-p): New defun.
(tramp-crypt-file-name-handler-alist): Add it.
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): Flush proper file
properties.
* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs28-p):
New defun.
(tramp-archive-test48-auto-load): Extend test.
Eli Zaretskii [Mon, 15 May 2023 12:21:43 +0000 (15:21 +0300)]
Fix 'locale-info' on MS-Windows
* nt/mingw-cfg.site (am_cv_langinfo_codeset): Rename from
'emacs_cv_langinfo_codeset', to follow configure.ac.
Paul Eggert [Mon, 15 May 2023 01:51:24 +0000 (18:51 -0700)]
Prefer _WIDTH macros to sizeof in pdumper.c
This is a bit clearer, and should work better on hypothetical
platforms where integers have holes in their representation.
* src/pdumper.c: Since the code no longer uses CHAR_BIT,
don’t worry about whether it equals 8.
(DUMP_OFF_WIDTH): New macro.
(EMACS_RELOC_LENGTH_BITS, DUMP_RELOC_OFFSET_BITS): Use it.
(DUMP_BITSET_WORD_WIDTH): New macro.
(dump_bitsets_init, dump_bitset__bit_slot)
(dump_bitset_bit_set_p, dump_bitset__set_bit_value): Use it.
Paul Eggert [Mon, 15 May 2023 01:51:24 +0000 (18:51 -0700)]
Prefer PTRDIFF_WIDTH in sort.c
* src/sort.c (MAX_MERGE_PENDING):
Prefer PTRDIFF_WIDTH to rolling our own substitute.